# !/usr/bin/python
# -*- coding: utf-8 -*-
'''
@File    :   整数反转.py
@Time    :   2021/04/14 22:44:25
@Author  :   Qingxiang Zhang
@Version :   1.0
@Contact :   344285081@qq.com
@Desc    :   整数反转
@Software:    Vscode
'''

'''
给你一个 32 位的有符号整数 x ，返回将 x 中的数字部分反转后的结果。

如果反转后整数超过 32 位的有符号整数的范围 [−231,  231 − 1] ，就返回 0。
'''
# 输入：x = 123
# 输出：321
# 输入：x = -123
# 输出：-321
# 示例 3：

# 输入：x = 120
# 输出：21
# 示例 4：

# 输入：x = 0
# 输出：0
class Solution:
    def reverse(self, x: int) -> int:
        num =0
        a = abs(x)
        while (a!=0):
            temp = a % 10
            num = num*10 +temp
            a =a//10
        if x <0 and num <= pow(2,31):
            
            return -num
        elif  x>0 and num<=(pow(2,31)-1):
            return num
        else:
            return 0
if __name__=="__main__":
    so=Solution()
    num=so.reverse(123)
    print(num)
    num=so.reverse(-123)
    print(num)
    num=so.reverse(120)
    print(num)